//---------------------------------------------------------------------------
#ifndef TranslateUZH
#define TranslateUZH
#include "TCode.h"
#include <vcl.h>
#include <list.h>
#include "RZ.h"
#include "MP.h"
#include "VP.h"
#include "RT.h"
#include "CR.h"
#include "DG.h"
#include "DU.h"
#include "OB.h"
#include "OE.h"
#include "GB.h"
#include "CV.h"
#include "LU.h"
#include "LT.h"
#include "IT.h"
#include "PD.h"
#include "ND.h"
#include "DP.h"
#include "DZ.h"
#include "DO.h"
//#include "BZ.h"
#include "EZ.h"
#include "VS.h"
#include "GL.h"
#include "TC.h"
#include "TL.h"
#include "GR.h"
#include "TT.h"
#include "MT.h"
#include "OT.h"
#include "TP.h"
#include "TO.h"
#include "OU.h"
#include "RP.h"
#include "RO.h"
#include "TM.h"
#include "KG.h"
#include "SH.h"
#include "HS.h"
#include "HD.h"
#include "SK.h"
#include "KK.h"
#include "KN.h"
#include "CommandBase.h"

enum TypeUZ { uzOBJ, uzXAR };



class TranslateUZ
{
	public:
         unsigned int Size() const { return (unsigned int)(pData[0]); }
         UZ_Data GetColor() const   { return pData[1]; }
         void   SetColor(UZ_Data c) { pData[1] = c; }

		TranslateUZ( TCode code, TypeUZ type, UZ_Data * data );
		~TranslateUZ();
		AnsiString GetText();
	private:
		TypeUZ Type;
		UZ_Data* pData;
		UZ_Data* pFirstCom;
        list<CommandBase*> lCommands;
        list <CommandBase*>::iterator Iter;


		TCode Code;
};
//---------------------------------------------------------------------------
#endif
